home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / cstdio.arc / SRC.ARC / LTOAB.C < prev    next >
C/C++ Source or Header  |  1985-05-17  |  578b  |  28 lines

  1. /*    ltoab.c - long to ASCII based conversion.
  2.     K & R page 60, using pointers, including reverse.
  3.     Entered - G. R. Mansfield.  84/07/31.
  4.     Ver 1.0-5517.
  5. */
  6.  
  7. ltoab(n, s, b)    /* convert n to characters in s using base b */
  8. char *s;
  9. long n, b;
  10. {
  11.     char c, *p;
  12.     int i;
  13.  
  14.     n = n & 0x7FFFFFFFL;
  15.     p = s;
  16.     do {    /* generate digits in reverse order */
  17.         i = n % b;    /* get next digit */
  18.         *p++ = (i >= 10) ? i + ('A' - 10) : i + '0';
  19.     } 
  20.     while ((n /= b) > 0L);    /* delete it */
  21.     *p = '\0';
  22.     while (p > s) {    /* reverse string */
  23.         c = *s;
  24.         *s++ = *--p;
  25.         *p = c;
  26.     }
  27. }
  28.